home *** CD-ROM | disk | FTP | other *** search
-
- {
- if(true)
- {
- CLandscape = §§newclass(CLandscape,EventDispatcher);
- }
- }
-
- package Local.Game.World
- {
- import Local.Draw.CBitmapStripManager;
- import Local.Draw.CExplodeBMD;
- import Local.Draw.CExplodeBMDParticle;
- import flash.display.BitmapData;
- import flash.events.EventDispatcher;
- import flash.geom.Matrix;
- import flash.geom.Point;
- import flash.geom.Rectangle;
-
- public class CLandscape extends EventDispatcher
- {
-
- public static const zPoint:Point;
-
- {
- if(true)
- {
- zPoint = new Point(0,0);
- }
- }
-
- private var mAltLength:Number;
-
- private var mAverages:Array;
-
- private var mStripManager:CBitmapStripManager;
-
- private var dShake:CPosition;
-
- private var wAverages:Array;
-
- public var mTerrainID:String;
-
- private var mAltitudes:Array;
-
- public var mExplodeBMD:CExplodeBMD;
-
- private var mWorld:CWorld;
-
- private var mNormals:Array;
-
- private var wAltitudes:Array;
-
- private var wNormals:Array;
-
- public function CLandscape(param1:CWorld)
- {
- if(true)
- {
- super();
- if(true)
- {
- mWorld = param1;
- if(true)
- {
- mStripManager = new CBitmapStripManager();
- if(true)
- {
- mAltitudes = mStripManager.mFineAltitudes;
- }
- mAltLength = mAltitudes.length;
- }
- CreateAlts();
- }
- mExplodeBMD = new CExplodeBMD(mDrawPosition);
- }
- }
-
- private function Process_Explosion() : void
- {
- }
-
- public function GetAltitudes(param1:Number, param2:Number) : Array
- {
- if(true)
- {
- return param1 > param2 ? wAltitudes.slice(Math.floor(param2),Math.floor(param1)) : wAltitudes.slice(Math.floor(param1),Math.floor(param2));
- }
- §§goto(addr14);
- }
-
- public function get mDrawPosition() : Point
- {
- return mStripManager.mPosition;
- }
-
- public function CreateAlts() : void
- {
- var _loc1_:int = 0;
- var _loc2_:Number = NaN;
- var _loc3_:Number = NaN;
- if(true)
- {
- SmoothAltitudes();
- if(true)
- {
- wAltitudes = CreateWrapArray(mAltitudes);
- mNormals = new Array();
- }
- _loc1_ = 0;
- }
- while(_loc1_ < mAltLength)
- {
- _loc2_ = Number(wAltitudes[mAltLength + _loc1_ - 1]);
- _loc3_ = Number(wAltitudes[mAltLength + _loc1_ + 1]);
- mNormals[_loc1_] = CPosition.NORMALIZE(new CPosition(_loc3_ - _loc2_,-2));
- _loc1_++;
- }
- wNormals = CreateWrapArray(mNormals);
- }
-
- public function EndRender() : void
- {
- if(true)
- {
- §§push(mStripManager);
- if(true)
- {
- §§pop().EndRender();
- §§push(mStripManager);
- }
- §§pop().mBMD.unlock();
- }
- }
-
- public function CollideLine(param1:Number, param2:Number, param3:Number, param4:Number) : CPosition
- {
- var _loc5_:* = 0;
- var _loc6_:* = 0;
- var _loc7_:* = NaN;
- var _loc8_:* = 0;
- var _loc9_:* = NaN;
- var _loc10_:int = 0;
- var _loc11_:* = NaN;
- var _loc12_:int = 0;
- if(true)
- {
- §§push(int(Math.floor(param1) + mAltLength));
- if(true)
- {
- _loc5_ = §§pop();
- if(true)
- {
- §§push(int(Math.floor(param3) + mAltLength));
- if(true)
- {
- _loc6_ = §§pop();
- if(true)
- {
- §§push(Math.abs(_loc6_ - _loc5_));
- if(true)
- {
- _loc7_ = §§pop();
- if(true)
- {
- §§push(_loc6_);
- if(true)
- {
- if(§§pop() >= _loc5_)
- {
- if(true)
- {
- §§push(1);
- if(true)
- {
- addr79:
- §§push(§§pop());
- }
- _loc8_ = §§pop();
- }
- §§push(param4);
- if(true)
- {
- §§push(§§pop() - param2);
- if(true)
- {
- §§push(§§pop() / _loc7_);
- if(true)
- {
- §§push(§§pop());
- }
- _loc9_ = §§pop();
- addr96:
- _loc10_ = _loc5_;
- addr97:
- §§push(param2);
- addr95:
- addr94:
- }
- §§push(§§pop());
- }
- _loc11_ = §§pop();
- addr102:
- _loc12_ = _loc7_;
- loop0:
- while(true)
- {
- §§push(_loc12_);
- §§push(0);
- while(true)
- {
- if(§§pop() < §§pop())
- {
- addr152:
- return null;
- }
- §§push(_loc11_);
- if(false)
- {
- break;
- }
- if(§§pop() > wAltitudes[_loc10_])
- {
- if(true)
- {
- return new CPosition(_loc10_ - mAltLength,_loc11_);
- }
- §§goto(addr152);
- }
- §§push(_loc10_);
- §§push(_loc8_);
- if(true)
- {
- §§push(§§pop() + §§pop());
- if(true)
- {
- _loc10_ = §§pop();
- if(false)
- {
- continue loop0;
- }
- §§push(_loc11_ + _loc9_);
- }
- §§push(§§pop());
- break;
- }
- continue;
- }
- _loc11_ = §§pop();
- }
- addr101:
- addr100:
- }
- else
- {
- §§push(-1);
- }
- §§goto(addr79);
- }
- §§goto(addr95);
- }
- §§goto(addr94);
- }
- §§goto(addr101);
- }
- §§goto(addr97);
- }
- §§goto(addr96);
- }
- §§goto(addr100);
- }
- }
- §§goto(addr102);
- }
-
- public function set mDrawPosition(param1:Point) : void
- {
- mStripManager.mPosition = param1;
- }
-
- public function GetAltitudesQ(param1:Number, param2:Number) : Array
- {
- return wAltitudes.slice(param1,param2);
- }
-
- public function AddExplodeBMD(param1:BitmapData, param2:Matrix, param3:Point, param4:Number = 15) : void
- {
- mExplodeBMD.AddBMD(param1,param2,param3,param4);
- }
-
- public function GetNormal(param1:Number) : CPosition
- {
- return wNormals[Math.floor(param1 + mAltLength)];
- }
-
- public function QCollideLine(param1:Number, param2:Number, param3:Number, param4:Number) : CPosition
- {
- return CollideLine(param1,param2,param3,param4);
- }
-
- public function Render() : BitmapData
- {
- §§push(mStripManager);
- if(true)
- {
- §§pop().Render();
- mExplodeBMD.Render(mStripManager.mBMD);
- §§push(mStripManager);
- }
- return §§pop().mBMD;
- }
-
- public function Process() : void
- {
- mStripManager.Process();
- mExplodeBMD.Process();
- Process_Explosion();
- }
-
- public function get mWorldArea() : Rectangle
- {
- return new Rectangle(mDrawPosition.x,mDrawPosition.y,mStripManager.mBMD.width,mStripManager.mBMD.height);
- }
-
- public function get mCentreDrawPosition() : CPosition
- {
- return new CPosition(mStripManager.mPosition.x + mStripManager.mBMD.width / 2,mStripManager.mPosition.y + mStripManager.mBMD.height / 2);
- }
-
- public function Resize(param1:int, param2:int) : void
- {
- if(true)
- {
- mStripManager.Resize(param1,param2);
- CExplodeBMDParticle.mKillHeight = param2;
- }
- }
-
- public function get mWidth() : int
- {
- return mAltLength;
- }
-
- public function LineOfSight(param1:Number, param2:Number, param3:Number, param4:Number, param5:int = 10) : Boolean
- {
- var _loc6_:* = NaN;
- var _loc7_:* = 0;
- var _loc8_:* = 0;
- var _loc9_:* = NaN;
- §§push(param1);
- §§push(param3);
- if(true)
- {
- if(§§pop() > §§pop())
- {
- addr32:
- §§push(param2);
- §§push(param4);
- if(true)
- {
- §§push((§§pop() - §§pop()) * param5);
- §§push(param1);
- }
- _loc9_ = §§pop() / (§§pop() - param3);
- §§push(int(Math.floor(param3) + mAltLength));
- if(true)
- {
- _loc8_ = §§pop();
- §§push(int(Math.floor(param1) + mAltLength));
- }
- _loc7_ = §§pop();
- _loc6_ = param4;
- loop1:
- while(true)
- {
- §§push(_loc8_);
- if(true)
- {
- if(§§pop() <= _loc7_)
- {
- §§push(_loc6_);
- if(true)
- {
- if(§§pop() > wAltitudes[_loc8_])
- {
- §§push(false);
- if(true)
- {
- return §§pop();
- }
- }
- else
- {
- §§push(_loc8_);
- if(true)
- {
- §§push(§§pop() + param5);
- if(true)
- {
- §§push(§§pop());
- if(true)
- {
- _loc8_ = §§pop();
- §§push(_loc6_);
- if(true)
- {
- §§push(_loc9_);
- if(true)
- {
- §§push(§§pop() + §§pop());
- if(true)
- {
- §§push(§§pop());
- if(true)
- {
- continue;
- }
- while(true)
- {
- if(§§pop() > wAltitudes[_loc8_])
- {
- return false;
- }
- §§push(_loc8_);
- break loop1;
- }
- addr145:
- }
- while(true)
- {
- §§push(§§pop());
- addr155:
- while(true)
- {
- _loc8_ = §§pop();
- §§push(_loc6_);
- addr157:
- while(true)
- {
- §§push(_loc9_);
- }
- }
- }
- addr154:
- }
- while(true)
- {
- §§push(§§pop() + §§pop());
- addr159:
- while(true)
- {
- §§push(§§pop());
- addr160:
- while(true)
- {
- _loc6_ = §§pop();
- addr168:
- loop0:
- while(true)
- {
- §§push(_loc8_);
- addr169:
- while(true)
- {
- if(§§pop() > _loc7_)
- {
- break loop0;
- }
- §§goto(addr145);
- §§push(_loc6_);
- continue loop0;
- }
- }
- §§goto(addr172);
- }
- }
- }
- }
- §§goto(addr157);
- }
- §§goto(addr155);
- }
- §§goto(addr159);
- }
- §§goto(addr169);
- }
- §§goto(addr172);
- }
- §§goto(addr160);
- }
- addr172:
- return true;
- }
- break;
- }
- while(true)
- {
- §§goto(addr154);
- }
- }
- else
- {
- §§push(param4);
- if(true)
- {
- §§push(param2);
- if(true)
- {
- addr141:
- §§push(§§pop() - §§pop());
- if(true)
- {
- §§push(§§pop() * param5);
- if(true)
- {
- addr120:
- §§push(§§pop() / (param3 - param1));
- }
- _loc9_ = §§pop();
- §§push(int(Math.floor(param1) + mAltLength));
- if(true)
- {
- _loc8_ = §§pop();
- §§push(int(Math.floor(param3) + mAltLength));
- }
- _loc7_ = §§pop();
- §§push(param2);
- }
- _loc6_ = §§pop();
- §§goto(addr168);
- }
- §§goto(addr120);
- }
- §§goto(addr141);
- }
- §§goto(addr168);
- }
- §§goto(addr32);
- }
-
- private function SmoothAltitudes() : void
- {
- var _loc1_:int = 0;
- _loc1_ = 1;
- while(_loc1_ < mAltLength - 1)
- {
- mAltitudes[_loc1_] = ((mAltitudes[_loc1_ - 1] + mAltitudes[_loc1_ + 1]) / 2 + mAltitudes[_loc1_]) / 2;
- _loc1_++;
- }
- }
-
- public function Scroll(param1:Number, param2:Number = 0) : void
- {
- mStripManager.Scroll(param1);
- }
-
- private function CreateWrapArray(param1:Array) : Array
- {
- var _loc2_:Array = null;
- var _loc3_:* = NaN;
- var _loc4_:Number = NaN;
- var _loc5_:int = 0;
- _loc2_ = new Array();
- if(true)
- {
- §§push(Number(param1[0]));
- if(true)
- {
- _loc3_ = §§pop();
- if(true)
- {
- addr45:
- _loc4_ = Number(param1[mAltLength - 1]);
- }
- _loc5_ = 0;
- §§goto(addr48);
- }
- §§goto(addr45);
- }
- addr48:
- while(_loc5_ < mAltLength)
- {
- _loc2_[_loc5_ + mAltLength * 0] = _loc3_;
- _loc2_[_loc5_ + mAltLength * 1] = param1[_loc5_];
- _loc2_[_loc5_ + mAltLength * 2] = _loc4_;
- _loc5_++;
- }
- return _loc2_;
- }
-
- public function GetAltitude(param1:Number) : Number
- {
- return wAltitudes[Math.floor(param1 + mAltLength)];
- }
-
- public function Explosion(param1:CPosition, param2:Number) : void
- {
- }
-
- public function StartRender() : void
- {
- if(true)
- {
- §§push(mStripManager);
- if(true)
- {
- §§pop().mBMD.lock();
- §§push(mStripManager);
- }
- §§pop().StartRender();
- }
- }
- }
- }
-